#ifndef __SR501_H__
#define __SR501_H__

#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/fs.h>
#include <linux/cdev.h>
#include <linux/slab.h>
#include <linux/device.h>
#include <linux/uaccess.h>
#include <linux/io.h>
#include <linux/ioport.h>
#include <linux/poll.h>
#include <linux/platform_device.h>
#include <linux/of.h>
#include <linux/of_gpio.h>
#include <linux/interrupt.h>
#include <linux/of_irq.h>
#include <linux/kthread.h>
#include <linux/delay.h>

#define SR501_NUMBER	5

struct sr501_handle{
	int use_flag;
	int gpio;
	int gpio_active;
	int irq;
	struct work_struct work;
	struct task_struct *kthread;
	wait_queue_head_t wait_queue;
	struct fasync_struct *fasync;
	int state;
	int update;
};

#endif
